教程_关节模块驱动器固件升级
修订日期 | 修订版本 | 修订内容 | 修订人 |
---|---|---|---|
2022/10/27 | V1.0 | 新建文档,驱动器固件烧写 | 高振宇 |
2022/10/29 | V1.1 | 添加:问题说明;版本确认;重新标定;遗留问题 修改文件名为教程_关节模块驱动器固件升级 |
曾雨昊 |
0.当前问题说明
当前版本并未提供真正的固件升级教程,而提供的是固件烧录教程。其区别在于:烧录固件会擦除MCU上的所有信息,导致关节模块必须拆卸后单独重新标定,再安装成机械臂后才能使用。请谨慎操作。
后续将更新固件升级教程,解决这一问题。
1.准备工作
1.1硬件准备
- 关节模块
- J-LINK连接器
- USB-CAN转接器(用于标定及验证)
- 48V/5A开关电源(用于标定及验证)
1.2软件准备
- J-Flash V7.82 链接:https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=9206440325&fileId=72063747583&type=file
- 目标hex文件:自备
- USB-CAN驱动(用于标定及验证) 链接:https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=9206440325&fileId=72064036836&type=file
- STM32_Driver_Test(用于标定及验证) 链接:https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=9206440325&fileId=72064066628&type=file
2.操作步骤
2.1 烧录hex文件
需要特别注意,用下述步骤会擦除MCU的所有信息,烧录后需要进一步标定驱动器。
下面以14模块为例,烧录版本号为2124的驱动器软件程序。
首先将J-Link与驱动器P1端子连接(J-Link另一头通过USB连PC),如图所示:
打开J-Flash V7.22b软件:
Creat New Project,选择Target Device
为STM32F405RG
,Target interface
和Speed
保持默认:
将目标hex文件拖动至右侧Drag & Drop Data file here
内:
点击Target
--> Connect
:
状态显示Connected successfully
后,点击Target
-->Production Programming
:
状态显示如下,即说明烧录成功。
如果有以下弹窗,可不用关注,这仅仅是提示J-Link为盗版,只需确认上图中Successfully即可。
2.2 固件库版本确认
如无需确认固件库版本,可跳过此步骤。确认固件库版本需要将模块与USB-CAN连接器连接,并利用上位机软件进行版本号检查。
首先按下图连接驱动器与CAN连接器和电源:
打开STM32_Driver_Test上位机软件,点击通讯
--> 连接驱动器
:
若MCU已进行全片擦除,此处ID应写1;否则写当前关节索引号(例如关节6就写ID-6)
连接成功后,界面下方会显示版本号,可确认烧录的版本是否正确。
2.3 模块标定
若能正常升级固件库,则可跳过此节。若已对MCU进行全片擦除再烧录,则需要进一步进行模块的标定。如2.2节所述,用上位机软件与驱动器连接,在连接成功后,如未听到抱闸开启的声音,按如下步骤操作:
点击设置与标定
--> 勾选上电使能
,再点击通讯
--> 保存数据到驱动器
断电,再重新上电。此时能在上电时听到抱闸开启,电机上电使能成功。
此时再点击波形发生器
--> 勾选使能波形发生器
--> 设置任意偏置
(最好不要太大,30deg以内即可),关节末端运动。如此时未运动,应检查是否选中了上电使能。
以i5-关节6为例,其零位位于下图位置:
设置偏置量,用肉眼观察(目前仅有这种方式)关节是否运动到零位。
点击设置与标定
--> 当前位置设置为零位
。此时需确认关节模块末端无负载,最好将模块输出端悬空,否则模块可能会乱动。点击设置与标定
--> 电位器标定
,关节模块开始自标定,具体表现为先缓慢正转,再缓慢反转,在输出端最后一次快速回转运动后标定结束。
若ID被擦除,还需设定ID,这一过程较复杂,当前版本没有记录。
2.4 关节模块正常运行验证
关节模块正常运行验证的方法多种多样,此处从算法的角度提供一种方法。
首先将升级后的关节模块重新装回机械臂上并正确连线(为了拆装方便,此时可以不对关节之间做机械连接,仅完成电气连接即可)
运行仿真平台,给整机上电Power On,正常情况下log如下:
若机械臂成功上电,则说明模块可以正常运行。此时需要注意,若关节之间没有做机械连接,那么最好不要控制机械臂运动,避免造成其他风险。
若机械臂不能成功上电,可能存在如下报错:
以上图为例,将错误索引值0x0c转为二进制数00001100,可以看到Bit2和Bit3为1,说明此时关节2和关节3模块连接异常,需要进一步排查。
3. 遗留问题
- 尚未掌握升级固件的流程,每次烧录完之后都要拆卸模块、标定模块,步骤过于复杂
- 标定模块时仅用肉眼观察零位是否到位,存在较大误差
- ID被擦除后还需要用上位机设置ID,其过程涉及了上位机可能存在的BUG,较为繁琐,当前版本未记录。